# NodeHandler.py
#
# This function maps directives to Directive Nodes
#

from directives import *
from ConfigNode import ConfigNode

def MapDirective(directive, args):
    dct = {
        "acceptfilter":AcceptFilter.AcceptFilter,
        "acceptmutex":AcceptMutex.AcceptMutex,
        "acceptpathinfo":AcceptPathInfo.AcceptPathInfo,
        "accessfilename":AccessFileName.AccessFileName,
        "action":Action.Action,
        "addalt":AddAlt.AddAlt,
        "addaltbyencoding":AddAltByEncoding.AddAltByEncoding,
        "addaltbytype":AddAltByType.AddAltByType,
        "addcharset":AddCharset.AddCharset,
        "adddefaultcharset":AddDefaultCharset.AddDefaultCharset,
        "adddescription":AddDescription.AddDescription,
        "addencoding":AddEncoding.AddEncoding,
        "addhandler":AddHandler.AddHandler,
        "addicon":AddIcon.AddIcon,
        "addiconbyencoding":AddIconByEncoding.AddIconByEncoding,
        "addiconbytype":AddIconByType.AddIconByType,
        "addinputfilter":AddInputFilter.AddInputFilter,
        "addlanguage":AddLanguage.AddLanguage,
        "addmoduleinfo":AddModuleInfo.AddModuleInfo,
        "addoutputfilter":AddOutputFilter.AddOutputFilter,
        "addoutputfilterbytype":AddOutputFilterByType.AddOutputFilterByType,
        "addtype":AddType.AddType,
        "alias":Alias.Alias,
        "aliasmatch":AliasMatch.AliasMatch,
        "allow":Allow.Allow,
        "allowconnect":AllowCONNECT.AllowCONNECT,
        "allowencodedslashes":AllowEncodedSlashes.AllowEncodedSlashes,
        "allowoverride":AllowOverride.AllowOverride,
        "anonymous":Anonymous.Anonymous,
        "anonymous_logemail":Anonymous_LogEmail.Anonymous_LogEmail,
        "anonymous_mustgiveemail":Anonymous_MustGiveEmail.Anonymous_MustGiveEmail,
        "anonymous_nouserid":Anonymous_NoUserID.Anonymous_NoUserID,
        "anonymous_verifyemail":Anonymous_VerifyEmail.Anonymous_VerifyEmail,
        "authbasicauthoritative":AuthBasicAuthoritative.AuthBasicAuthoritative,
        "authbasicprovider":AuthBasicProvider.AuthBasicProvider,
        "authdbduserpwquery":AuthDBDUserPWQuery.AuthDBDUserPWQuery,
        "authdbduserrealmquery":AuthDBDUserRealmQuery.AuthDBDUserRealmQuery,
        "authdbmgroupfile":AuthDBMGroupFile.AuthDBMGroupFile,
        "authdbmtype":AuthDBMType.AuthDBMType,
        "authdbmuserfile":AuthDBMUserFile.AuthDBMUserFile,
        "authdefaultauthoritative":AuthDefaultAuthoritative.AuthDefaultAuthoritative,
        "authdigestalgorithm":AuthDigestAlgorithm.AuthDigestAlgorithm,
        "authdigestdomain":AuthDigestDomain.AuthDigestDomain,
        "authdigestnccheck":AuthDigestNcCheck.AuthDigestNcCheck,
        "authdigestnonceformat":AuthDigestNonceFormat.AuthDigestNonceFormat,
        "authdigestnoncelifetime":AuthDigestNonceLifetime.AuthDigestNonceLifetime,
        "authdigestprovider":AuthDigestProvider.AuthDigestProvider,
        "authdigestqop":AuthDigestQop.AuthDigestQop,
        "authdigestshmemsize":AuthDigestShmemSize.AuthDigestShmemSize,
        "authgroupfile":AuthGroupFile.AuthGroupFile,
        "authldapbinddn":AuthLDAPBindDN.AuthLDAPBindDN,
        "authldapbindpassword":AuthLDAPBindPassword.AuthLDAPBindPassword,
        "authldapcharsetconfig":AuthLDAPCharsetConfig.AuthLDAPCharsetConfig,
        "authldapcomparednonserver":AuthLDAPCompareDNOnServer.AuthLDAPCompareDNOnServer,
        "authldapdereferencealiases":AuthLDAPDereferenceAliases.AuthLDAPDereferenceAliases,
        "authldapgroupattribute":AuthLDAPGroupAttribute.AuthLDAPGroupAttribute,
        "authldapgroupattributeisdn":AuthLDAPGroupAttributeIsDN.AuthLDAPGroupAttributeIsDN,
        "authldapremoteuserisdn":AuthLDAPRemoteUserIsDN.AuthLDAPRemoteUserIsDN,
        "authldapurl":AuthLDAPUrl.AuthLDAPUrl,
        "authname":AuthName.AuthName,
        "authnprovideralias":AuthnProviderAlias.AuthnProviderAlias,
        "authtype":AuthType.AuthType,
        "authuserfile":AuthUserFile.AuthUserFile,
        "authzdbmauthoritative":AuthzDBMAuthoritative.AuthzDBMAuthoritative,
        "authzdbmtype":AuthzDBMType.AuthzDBMType,
        "authzdefaultauthoritative":AuthzDefaultAuthoritative.AuthzDefaultAuthoritative,
        "authzgroupfileauthoritative":AuthzGroupFileAuthoritative.AuthzGroupFileAuthoritative,
        "authzldapauthoritative":AuthzLDAPAuthoritative.AuthzLDAPAuthoritative,
        "authzownerauthoritative":AuthzOwnerAuthoritative.AuthzOwnerAuthoritative,
        "authzuserauthoritative":AuthzUserAuthoritative.AuthzUserAuthoritative,
        "browsermatch":BrowserMatch.BrowserMatch,
        "browsermatchnocase":BrowserMatchNoCase.BrowserMatchNoCase,
        "bufferedlogs":BufferedLogs.BufferedLogs,
        "cachedefaultexpire":CacheDefaultExpire.CacheDefaultExpire,
        "cachedirlength":CacheDirLength.CacheDirLength,
        "cachedirlevels":CacheDirLevels.CacheDirLevels,
        "cachedisable":CacheDisable.CacheDisable,
        "cacheenable":CacheEnable.CacheEnable,
        "cachefile":CacheFile.CacheFile,
        "cacheignorecachecontrol":CacheIgnoreCacheControl.CacheIgnoreCacheControl,
        "cacheignoreheaders":CacheIgnoreHeaders.CacheIgnoreHeaders,
        "cacheignorenolastmod":CacheIgnoreNoLastMod.CacheIgnoreNoLastMod,
        "cachelastmodifiedfactor":CacheLastModifiedFactor.CacheLastModifiedFactor,
        "cachemaxexpire":CacheMaxExpire.CacheMaxExpire,
        "cachemaxfilesize":CacheMaxFileSize.CacheMaxFileSize,
        "cacheminfilesize":CacheMinFileSize.CacheMinFileSize,
        "cachenegotiateddocs":CacheNegotiatedDocs.CacheNegotiatedDocs,
        "cacheroot":CacheRoot.CacheRoot,
        "cachestorenostore":CacheStoreNoStore.CacheStoreNoStore,
        "cachestoreprivate":CacheStorePrivate.CacheStorePrivate,
        "cgimapextension":CGIMapExtension.CGIMapExtension,
        "charsetdefault":CharsetDefault.CharsetDefault,
        "charsetoptions":CharsetOptions.CharsetOptions,
        "charsetsourceenc":CharsetSourceEnc.CharsetSourceEnc,
        "checkspelling":CheckSpelling.CheckSpelling,
        "contentdigest":ContentDigest.ContentDigest,
        "cookiedomain":CookieDomain.CookieDomain,
        "cookieexpires":CookieExpires.CookieExpires,
        "cookielog":CookieLog.CookieLog,
        "cookiename":CookieName.CookieName,
        "cookiestyle":CookieStyle.CookieStyle,
        "cookietracking":CookieTracking.CookieTracking,
        "coredumpdirectory":CoreDumpDirectory.CoreDumpDirectory,
        "customlog":CustomLog.CustomLog,
        "dav":Dav.Dav,
        "davdepthinfinity":DavDepthInfinity.DavDepthInfinity,
        "davgenericlockdb":DavGenericLockDB.DavGenericLockDB,
        "davlockdb":DavLockDB.DavLockDB,
        "davmintimeout":DavMinTimeout.DavMinTimeout,
        "dbdexptime":DBDExptime.DBDExptime,
        "dbdkeep":DBDKeep.DBDKeep,
        "dbdmax":DBDMax.DBDMax,
        "dbdmin":DBDMin.DBDMin,
        "dbdparams":DBDParams.DBDParams,
        "dbdpersist":DBDPersist.DBDPersist,
        "dbdpreparesql":DBDPrepareSQL.DBDPrepareSQL,
        "dbdriver":DBDriver.DBDriver,
        "defaulticon":DefaultIcon.DefaultIcon,
        "defaultlanguage":DefaultLanguage.DefaultLanguage,
        "defaulttype":DefaultType.DefaultType,
        "deflatebuffersize":DeflateBufferSize.DeflateBufferSize,
        "deflatecompressionlevel":DeflateCompressionLevel.DeflateCompressionLevel,
        "deflatefilternote":DeflateFilterNote.DeflateFilterNote,
        "deflatememlevel":DeflateMemLevel.DeflateMemLevel,
        "deflatewindowsize":DeflateWindowSize.DeflateWindowSize,
        "deny":Deny.Deny,
        "directory":Directory.Directory,
        "directoryindex":DirectoryIndex.DirectoryIndex,
        "directorymatch":DirectoryMatch.DirectoryMatch,
        "directoryslash":DirectorySlash.DirectorySlash,
        "documentroot":DocumentRoot.DocumentRoot,
        "dumpioinput":DumpIOInput.DumpIOInput,
        "dumpiooutput":DumpIOOutput.DumpIOOutput,
        "enableexceptionhook":EnableExceptionHook.EnableExceptionHook,
        "enablemmap":EnableMMAP.EnableMMAP,
        "enablesendfile":EnableSendfile.EnableSendfile,
        "errordocument":ErrorDocument.ErrorDocument,
        "errorlog":ErrorLog.ErrorLog,
        "example":Example.Example,
        "expiresactive":ExpiresActive.ExpiresActive,
        "expiresbytype":ExpiresByType.ExpiresByType,
        "expiresdefault":ExpiresDefault.ExpiresDefault,
        "extendedstatus":ExtendedStatus.ExtendedStatus,
        "extfilterdefine":ExtFilterDefine.ExtFilterDefine,
        "extfilteroptions":ExtFilterOptions.ExtFilterOptions,
        "fileetag":FileETag.FileETag,
        "files":Files.Files,
        "filesmatch":FilesMatch.FilesMatch,
        "filterchain":FilterChain.FilterChain,
        "filterdeclare":FilterDeclare.FilterDeclare,
        "filterprotocol":FilterProtocol.FilterProtocol,
        "filterprovider":FilterProvider.FilterProvider,
        "filtertrace":FilterTrace.FilterTrace,
        "forcelanguagepriority":ForceLanguagePriority.ForceLanguagePriority,
        "forcetype":ForceType.ForceType,
        "forensiclog":ForensicLog.ForensicLog,
        "gracefulshutdowntimeout":GracefulShutDownTimeout.GracefulShutDownTimeout,
        "group":Group.Group,
        "header":Header.Header,
        "headername":HeaderName.HeaderName,
        "hostnamelookups":HostnameLookups.HostnameLookups,
        "identitycheck":IdentityCheck.IdentityCheck,
        "identitychecktimeout":IdentityCheckTimeout.IdentityCheckTimeout,
        "ifdefine":IfDefine.IfDefine,
        "ifmodule":IfModule.IfModule,
        "ifversion":IfVersion.IfVersion,
        "imapbase":ImapBase.ImapBase,
        "imapdefault":ImapDefault.ImapDefault,
        "imapmenu":ImapMenu.ImapMenu,
        "include":Include.Include,
        "indexignore":IndexIgnore.IndexIgnore,
        "indexoptions":IndexOptions.IndexOptions,
        "indexorderdefault":IndexOrderDefault.IndexOrderDefault,
        "indexstylesheet":IndexStyleSheet.IndexStyleSheet,
        "isapiappendlogtoerrors":ISAPIAppendLogToErrors.ISAPIAppendLogToErrors,
        "isapiappendlogtoquery":ISAPIAppendLogToQuery.ISAPIAppendLogToQuery,
        "isapicachefile":ISAPICacheFile.ISAPICacheFile,
        "isapifakeasync":ISAPIFakeAsync.ISAPIFakeAsync,
        "isapilognotsupported":ISAPILogNotSupported.ISAPILogNotSupported,
        "isapireadaheadbuffer":ISAPIReadAheadBuffer.ISAPIReadAheadBuffer,
        "keepalive":KeepAlive.KeepAlive,
        "keepalivetimeout":KeepAliveTimeout.KeepAliveTimeout,
        "languagepriority":LanguagePriority.LanguagePriority,
        "ldapcacheentries":LDAPCacheEntries.LDAPCacheEntries,
        "ldapcachettl":LDAPCacheTTL.LDAPCacheTTL,
        "ldapconnectiontimeout":LDAPConnectionTimeout.LDAPConnectionTimeout,
        "ldapopcacheentries":LDAPOpCacheEntries.LDAPOpCacheEntries,
        "ldapopcachettl":LDAPOpCacheTTL.LDAPOpCacheTTL,
        "ldapsharedcachefile":LDAPSharedCacheFile.LDAPSharedCacheFile,
        "ldapsharedcachesize":LDAPSharedCacheSize.LDAPSharedCacheSize,
        "ldaptrustedclientcert":LDAPTrustedClientCert.LDAPTrustedClientCert,
        "ldaptrustedglobalcert":LDAPTrustedGlobalCert.LDAPTrustedGlobalCert,
        "ldaptrustedmode":LDAPTrustedMode.LDAPTrustedMode,
        "ldapverifyservercert":LDAPVerifyServerCert.LDAPVerifyServerCert,
        "limit":Limit.Limit,
        "limitexcept":LimitExcept.LimitExcept,
        "limitinternalrecursion":LimitInternalRecursion.LimitInternalRecursion,
        "limitrequestbody":LimitRequestBody.LimitRequestBody,
        "limitrequestfields":LimitRequestFields.LimitRequestFields,
        "limitrequestfieldsize":LimitRequestFieldSize.LimitRequestFieldSize,
        "limitrequestline":LimitRequestLine.LimitRequestLine,
        "limitxmlrequestbody":LimitXMLRequestBody.LimitXMLRequestBody,
        "listen":Listen.Listen,
        "listenbacklog":ListenBackLog.ListenBackLog,
        "loadfile":LoadFile.LoadFile,
        "loadmodule":LoadModule.LoadModule,
        "location":Location.Location,
        "locationmatch":LocationMatch.LocationMatch,
        "lockfile":LockFile.LockFile,
        "logformat":LogFormat.LogFormat,
        "loglevel":LogLevel.LogLevel,
        "maxclients":MaxClients.MaxClients,
        "maxkeepaliverequests":MaxKeepAliveRequests.MaxKeepAliveRequests,
        "maxmemfree":MaxMemFree.MaxMemFree,
        "maxrequestsperchild":MaxRequestsPerChild.MaxRequestsPerChild,
        "maxrequestsperthread":MaxRequestsPerThread.MaxRequestsPerThread,
        "maxspareservers":MaxSpareServers.MaxSpareServers,
        "maxsparethreads":MaxSpareThreads.MaxSpareThreads,
        "maxthreads":MaxThreads.MaxThreads,
        "mcachemaxobjectcount":MCacheMaxObjectCount.MCacheMaxObjectCount,
        "mcachemaxobjectsize":MCacheMaxObjectSize.MCacheMaxObjectSize,
        "mcachemaxstreamingbuffer":MCacheMaxStreamingBuffer.MCacheMaxStreamingBuffer,
        "mcacheminobjectsize":MCacheMinObjectSize.MCacheMinObjectSize,
        "mcacheremovalalgorithm":MCacheRemovalAlgorithm.MCacheRemovalAlgorithm,
        "mcachesize":MCacheSize.MCacheSize,
        "metadir":MetaDir.MetaDir,
        "metafiles":MetaFiles.MetaFiles,
        "metasuffix":MetaSuffix.MetaSuffix,
        "mimemagicfile":MimeMagicFile.MimeMagicFile,
        "minspareservers":MinSpareServers.MinSpareServers,
        "minsparethreads":MinSpareThreads.MinSpareThreads,
        "mmapfile":MMapFile.MMapFile,
        "modmimeusepathinfo":ModMimeUsePathInfo.ModMimeUsePathInfo,
        "multiviewsmatch":MultiviewsMatch.MultiviewsMatch,
        "namevirtualhost":NameVirtualHost.NameVirtualHost,
        "noproxy":NoProxy.NoProxy,
        "nwssltrustedcerts":NWSSLTrustedCerts.NWSSLTrustedCerts,
        "nwsslupgradeable":NWSSLUpgradeable.NWSSLUpgradeable,
        "options":Options.Options,
        "order":Order.Order,
        "passenv":PassEnv.PassEnv,
        "pidfile":PidFile.PidFile,
        "protocolecho":ProtocolEcho.ProtocolEcho,
        "proxy":Proxy.Proxy,
        "proxybadheader":ProxyBadHeader.ProxyBadHeader,
        "proxyblock":ProxyBlock.ProxyBlock,
        "proxydomain":ProxyDomain.ProxyDomain,
        "proxyerroroverride":ProxyErrorOverride.ProxyErrorOverride,
        "proxyiobuffersize":ProxyIOBufferSize.ProxyIOBufferSize,
        "proxymatch":ProxyMatch.ProxyMatch,
        "proxymaxforwards":ProxyMaxForwards.ProxyMaxForwards,
        "proxypass":ProxyPass.ProxyPass,
        "proxypassreverse":ProxyPassReverse.ProxyPassReverse,
        "proxypassreversecookiedomain":ProxyPassReverseCookieDomain.ProxyPassReverseCookieDomain,
        "proxypassreversecookiepath":ProxyPassReverseCookiePath.ProxyPassReverseCookiePath,
        "proxypreservehost":ProxyPreserveHost.ProxyPreserveHost,
        "proxyreceivebuffersize":ProxyReceiveBufferSize.ProxyReceiveBufferSize,
        "proxyremote":ProxyRemote.ProxyRemote,
        "proxyremotematch":ProxyRemoteMatch.ProxyRemoteMatch,
        "proxyrequests":ProxyRequests.ProxyRequests,
        "proxytimeout":ProxyTimeout.ProxyTimeout,
        "proxyvia":ProxyVia.ProxyVia,
        "readmename":ReadmeName.ReadmeName,
        "receivebuffersize":ReceiveBufferSize.ReceiveBufferSize,
        "redirect":Redirect.Redirect,
        "redirectmatch":RedirectMatch.RedirectMatch,
        "redirectpermanent":RedirectPermanent.RedirectPermanent,
        "redirecttemp":RedirectTemp.RedirectTemp,
        "removecharset":RemoveCharset.RemoveCharset,
        "removeencoding":RemoveEncoding.RemoveEncoding,
        "removehandler":RemoveHandler.RemoveHandler,
        "removeinputfilter":RemoveInputFilter.RemoveInputFilter,
        "removelanguage":RemoveLanguage.RemoveLanguage,
        "removeoutputfilter":RemoveOutputFilter.RemoveOutputFilter,
        "removetype":RemoveType.RemoveType,
        "requestheader":RequestHeader.RequestHeader,
        "require":Require.Require,
        "rewritebase":RewriteBase.RewriteBase,
        "rewritecond":RewriteCond.RewriteCond,
        "rewriteengine":RewriteEngine.RewriteEngine,
        "rewritelock":RewriteLock.RewriteLock,
        "rewritelog":RewriteLog.RewriteLog,
        "rewriteloglevel":RewriteLogLevel.RewriteLogLevel,
        "rewritemap":RewriteMap.RewriteMap,
        "rewriteoptions":RewriteOptions.RewriteOptions,
        "rewriterule":RewriteRule.RewriteRule,
        "rlimitcpu":RLimitCPU.RLimitCPU,
        "rlimitmem":RLimitMEM.RLimitMEM,
        "rlimitnproc":RLimitNPROC.RLimitNPROC,
        "satisfy":Satisfy.Satisfy,
        "scoreboardfile":ScoreBoardFile.ScoreBoardFile,
        "script":Script.Script,
        "scriptalias":ScriptAlias.ScriptAlias,
        "scriptaliasmatch":ScriptAliasMatch.ScriptAliasMatch,
        "scriptinterpretersource":ScriptInterpreterSource.ScriptInterpreterSource,
        "scriptlog":ScriptLog.ScriptLog,
        "scriptlogbuffer":ScriptLogBuffer.ScriptLogBuffer,
        "scriptloglength":ScriptLogLength.ScriptLogLength,
        "scriptsock":ScriptSock.ScriptSock,
        "securelisten":SecureListen.SecureListen,
        "sendbuffersize":SendBufferSize.SendBufferSize,
        "serveradmin":ServerAdmin.ServerAdmin,
        "serveralias":ServerAlias.ServerAlias,
        "serverlimit":ServerLimit.ServerLimit,
        "servername":ServerName.ServerName,
        "serverpath":ServerPath.ServerPath,
        "serverroot":ServerRoot.ServerRoot,
        "serversignature":ServerSignature.ServerSignature,
        "servertokens":ServerTokens.ServerTokens,
        "setenv":SetEnv.SetEnv,
        "setenvif":SetEnvIf.SetEnvIf,
        "setenvifnocase":SetEnvIfNoCase.SetEnvIfNoCase,
        "sethandler":SetHandler.SetHandler,
        "setinputfilter":SetInputFilter.SetInputFilter,
        "setoutputfilter":SetOutputFilter.SetOutputFilter,
        "ssiendtag":SSIEndTag.SSIEndTag,
        "ssierrormsg":SSIErrorMsg.SSIErrorMsg,
        "ssistarttag":SSIStartTag.SSIStartTag,
        "ssitimeformat":SSITimeFormat.SSITimeFormat,
        "ssiundefinedecho":SSIUndefinedEcho.SSIUndefinedEcho,
        "sslcacertificatefile":SSLCACertificateFile.SSLCACertificateFile,
        "sslcacertificatepath":SSLCACertificatePath.SSLCACertificatePath,
        "sslcadnrequestfile":SSLCADNRequestFile.SSLCADNRequestFile,
        "sslcadnrequestpath":SSLCADNRequestPath.SSLCADNRequestPath,
        "sslcarevocationfile":SSLCARevocationFile.SSLCARevocationFile,
        "sslcarevocationpath":SSLCARevocationPath.SSLCARevocationPath,
        "sslcertificatechainfile":SSLCertificateChainFile.SSLCertificateChainFile,
        "sslcertificatefile":SSLCertificateFile.SSLCertificateFile,
        "sslcertificatekeyfile":SSLCertificateKeyFile.SSLCertificateKeyFile,
        "sslciphersuite":SSLCipherSuite.SSLCipherSuite,
        "sslcryptodevice":SSLCryptoDevice.SSLCryptoDevice,
        "sslengine":SSLEngine.SSLEngine,
        "sslhonorcipherorder":SSLHonorCipherOrder.SSLHonorCipherOrder,
        "sslmutex":SSLMutex.SSLMutex,
        "ssloptions":SSLOptions.SSLOptions,
        "sslpassphrasedialog":SSLPassPhraseDialog.SSLPassPhraseDialog,
        "sslprotocol":SSLProtocol.SSLProtocol,
        "sslproxycacertificatefile":SSLProxyCACertificateFile.SSLProxyCACertificateFile,
        "sslproxycacertificatepath":SSLProxyCACertificatePath.SSLProxyCACertificatePath,
        "sslproxycarevocationfile":SSLProxyCARevocationFile.SSLProxyCARevocationFile,
        "sslproxycarevocationpath":SSLProxyCARevocationPath.SSLProxyCARevocationPath,
        "sslproxyciphersuite":SSLProxyCipherSuite.SSLProxyCipherSuite,
        "sslproxyengine":SSLProxyEngine.SSLProxyEngine,
        "sslproxymachinecertificatefile":SSLProxyMachineCertificateFile.SSLProxyMachineCertificateFile,
        "sslproxymachinecertificatepath":SSLProxyMachineCertificatePath.SSLProxyMachineCertificatePath,
        "sslproxyprotocol":SSLProxyProtocol.SSLProxyProtocol,
        "sslproxyverify":SSLProxyVerify.SSLProxyVerify,
        "sslproxyverifydepth":SSLProxyVerifyDepth.SSLProxyVerifyDepth,
        "sslrandomseed":SSLRandomSeed.SSLRandomSeed,
        "sslrequire":SSLRequire.SSLRequire,
        "sslrequiressl":SSLRequireSSL.SSLRequireSSL,
        "sslsessioncache":SSLSessionCache.SSLSessionCache,
        "sslsessioncachetimeout":SSLSessionCacheTimeout.SSLSessionCacheTimeout,
        "sslusername":SSLUserName.SSLUserName,
        "sslverifyclient":SSLVerifyClient.SSLVerifyClient,
        "sslverifydepth":SSLVerifyDepth.SSLVerifyDepth,
        "startservers":StartServers.StartServers,
        "startthreads":StartThreads.StartThreads,
        "suexecusergroup":SuexecUserGroup.SuexecUserGroup,
        "threadlimit":ThreadLimit.ThreadLimit,
        "threadsperchild":ThreadsPerChild.ThreadsPerChild,
        "threadstacksize":ThreadStackSize.ThreadStackSize,
        "timeout":TimeOut.TimeOut,
        "traceenable":TraceEnable.TraceEnable,
        "transferlog":TransferLog.TransferLog,
        "typesconfig":TypesConfig.TypesConfig,
        "unsetenv":UnsetEnv.UnsetEnv,
        "usecanonicalname":UseCanonicalName.UseCanonicalName,
        "usecanonicalphysicalport":UseCanonicalPhysicalPort.UseCanonicalPhysicalPort,
        "user":User.User,
        "userdir":UserDir.UserDir,
        "virtualdocumentroot":VirtualDocumentRoot.VirtualDocumentRoot,
        "virtualdocumentrootip":VirtualDocumentRootIP.VirtualDocumentRootIP,
        "virtualhost":VirtualHost.VirtualHost,
        "virtualscriptalias":VirtualScriptAlias.VirtualScriptAlias,
        "virtualscriptaliasip":VirtualScriptAliasIP.VirtualScriptAliasIP,
        "win32disableacceptex":Win32DisableAcceptEx.Win32DisableAcceptEx,
        "xbithack":XBitHack.XBitHack,
    }
    try:
        return dct[directive.lower()](args)
    except:
        c = ConfigNode()
        c.directive = directive
        c.args = args
        return c
